from public.tools import *
from public.action import  *
from public.testDATE import *
"""
用例：购买商品--确认收款发货--确认收货
作者：羊羊羊
1.打开网站登录
2.搜索小米手机，点击加入购物车，去结算，下一步    
3.选择线下支付，确认订单
4.保存订单号，提交支付    

1.打开后台网站
2.点击销售管理--订单管理
3.搜索订单号 --编辑查看--付款操作
4.修改为已付款--提交保存
5.发货操作--填写表单--点击发货

1.打开前台--用户中心--我的订单
2.点击已发货--搜索单号--确认收货--二次确认
3.断言--搜索订单号--订单完成
"""
testCase="DBshop001_线下支付流程"

# 1.打开网站登录
firefox =openB(url)
print("开始购物")
# 2.搜索小米手机，点击加入购物车，去结算，下一步
login(firefox,user,password)
firefox.find_element_by_xpath("//input[@name='keywords']").send_keys("小米")
firefox.find_element_by_xpath("//input[@class='search-btn iconfont']").click()
firefox.find_element_by_xpath("//img[@alt='小米Mix3 全网通版 8GB+128GB 黑色 磁动力滑盖全面屏']").click()
chage(firefox,2)                                                                                           #切换标签
firefox.find_element_by_id("add_cart_submit").click()
time.sleep(2)
firefox.find_element_by_link_text("去购物车结算").click()
firefox.find_element_by_link_text("去结算").click()

firefox.find_element_by_xpath("//input[@value='下一步']").click()
# 3.选择线下支付，确认订单
firefox.find_element_by_xpath("//input[@value='xxzf']").click()
time.sleep(2)
firefox.find_element_by_xpath("//input[@value='确认订单']").click()
print("确认订单")
# 4.保存订单号，提交支付
orderID = firefox.find_element_by_xpath('(//font[@color="color:#ED145B"])[2]').text
print("orderID is  ", orderID)
rootpath=get_pro_rootpath()
writeFile(rootpath+r"\public\ZCdh.txt",orderID)
firefox.find_element_by_xpath("//input[@value='马上去支付']").click()
firefox.find_element_by_id("state_info").send_keys(tttt)
firefox.find_element_by_xpath("//button[@class='btn btn-primary btn-large']").click()
print("支付成功")
firefox.quit()


# 1.打开后台网站
firefox =openB(adminurl)
adminlogin(firefox)
# 2.点击销售管理--订单管理
menu2(firefox,"销售管理","订单管理")
# 3.搜索订单号 --编辑查看--付款操作
firefox.find_element_by_xpath("//input[@class='span11']").send_keys(orderID)
firefox.find_element_by_xpath("(//button[@class='btn btn-small btn-primary'])[1]").click()
firefox.find_element_by_link_text("编辑查看").click()
firefox.find_element_by_link_text("付款操作").click()
# 4.修改为已付款--提交保存
firefox.find_element_by_xpath('//select[@id="pay_state"]/option[@value=20]').click()                        #下拉框选择
firefox.find_element_by_id("state_info").send_keys(ttt)
firefox.find_element_by_xpath("//button[@class='btn btn-small btn-primary']").click()
print("确认款项")
# 5.发货操作--填写表单--点击发货
firefox.find_element_by_link_text("发货操作").click()
firefox.find_element_by_id("express_number").send_keys(danhao)
firefox.find_element_by_id("state_info").send_keys(danhaoshuoming)
firefox.find_element_by_xpath("//button").click()
print("确认发货")
firefox.quit()


# 1.打开前台--用户中心--我的订单
firefox =openB(url)
login(firefox,user,password)
firefox.find_element_by_link_text("用户中心").click()
firefox.find_element_by_link_text("我的订单").click()
# 2.点击已发货--搜索单号--确认收货--二次确认
firefox.find_element_by_partial_link_text("已发货").click()
firefox.find_element_by_xpath("//input[@name='search_order_sn']").send_keys(orderID)
firefox.find_element_by_xpath("//button[1]").click()
firefox.find_element_by_xpath("//button[text()='确认收货']").click()
firefox.find_element_by_xpath("//button").click()
# firefox.switch_to.alert.dismiss() js弹窗取消
firefox.switch_to.alert.accept()                                                                           #js弹窗确认
print("确认收货")
# 3.断言--搜索订单号--订单完成
firefox.find_element_by_xpath("//input[@name='search_order_sn']").send_keys(orderID)
firefox.find_element_by_xpath("//button[1]").click()


try:
    firefox.find_element_by_link_text(orderID).is_displayed()  #is_displayed()函数判断元素是否显示
    writeLog("%s 测试通过"%testCase)
except:
    writeLog("%s 测试失败" % testCase)
    getPhoto(firefox)
firefox.quit()
print("完成购买")